package com.bbx.taxi.client.widget.Dailog;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import com.bbx.api.util.LogUtils;
import com.bbx.taxi.client.R;
import com.bbx.taxi.client.Bean.Value;
import com.bbx.taxi.client.Util.IsActivityFinishUtils;
import com.bbx.taxi.client.widget.MaxByteLengthEditText;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.text.Spanned;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
/** 
 * @Path com.bbx.taxi.client.widget.Dailog.MyChangePriceDialog.java
 * @Author 严旭文
 * @Date 2016-7-18 上午11:06:37
 * @Company 蓝海（福建）信息技术有限公司
 * @Description
 */
public class MyChangePriceDialog extends Dialog implements
		android.view.View.OnClickListener {
	public interface onClickChangeLeftListener {
		public void onClickLeft();
	}

	public interface onClickChangeRightListener {
		public void onClickRight();
	}

	public interface onClickChangeSingleListener {
		public void onClickSingle();
	}

	public onClickChangeLeftListener monClickLeftListener;
	public onClickChangeRightListener monClickRightListener;
	public onClickChangeSingleListener mOnClickSingleListener;
	public LinearLayout layout_dailog;
	private LinearLayout layout_double;
	private Button btn_single;
	private TextView tv_title;
	private TextView tv_content,tv_content2;
	private TextView tv_time;
	private TextView tv_count;
	private TextView tv_start;
	private TextView tv_end;
	private Button btn_cencel, btn_confirm;
	private boolean cancelable = true;
	private Context context;
	private boolean isFinish = false;

	public MyChangePriceDialog(Context context) {
		super(
				context,
				(MessageDialog.map_dialog.get(context.toString()) != null ? MessageDialog.map_dialog
						.get(context.toString()) : 0) == 0 ? R.style.Dialog_bocop
						: R.style.Dialog_bocop2);
		this.context = context;
		init();
	}

	private void init() {
		View contentView = View.inflate(context, R.layout.dailog_change, null);
		setContentView(contentView);
		tv_title = (TextView) findViewById(R.id.tv_title);
		tv_content = (TextView) findViewById(R.id.tv_content);
		tv_content2 = (TextView) findViewById(R.id.tv_content2);
		tv_time = (TextView) findViewById(R.id.tv_time);
		tv_count = (TextView) findViewById(R.id.tv_count);
		tv_start = (TextView) findViewById(R.id.tv_start);
		tv_end = (TextView) findViewById(R.id.tv_end);
		btn_cencel = (Button) findViewById(R.id.btn_cencel);
		btn_confirm = (Button) findViewById(R.id.btn_confirm);
		layout_double = (LinearLayout) findViewById(R.id.layout_double);
		layout_dailog = (LinearLayout) findViewById(R.id.layout_dailog);
		btn_single = (Button) findViewById(R.id.btn_single);
		btn_cencel.setOnClickListener(this);
		btn_confirm.setOnClickListener(this);
		btn_single.setOnClickListener(this);
		layout_dailog.setVisibility(View.GONE);
		this.setCancelable(false);
		contentView.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				if (cancelable) {
					dismiss();
				}
			}
		});
	}

	@Override
	public void show() {
		if(!IsActivityFinishUtils.isActivityFinish(context)){
		if(MessageDialog.map_dialog!=null){
			int size=MessageDialog.map_dialog.get(context.toString())!=null?MessageDialog.map_dialog.get(context.toString()):0;
			MessageDialog.map_dialog.put(context.toString(), size+1);
			if(MessageDialog.map_dialog.get(context.toString())!=null&&MessageDialog.map_dialog.get(context.toString())<=MessageDialog.max_dialog){
				super.show();
				Animation a = AnimationUtils.loadAnimation(context,
						R.anim.dialog_in);
				layout_dailog.startAnimation(a);
				layout_dailog.setVisibility(View.VISIBLE);
				isFinish = false;
			} else {
				MessageDialog.map_dialog.put(context.toString(),
						MessageDialog.map_dialog.get(context.toString()) - 1);
			}
		  }
		}
	}

	@SuppressLint("NewApi")
	@Override
	public void dismiss() {
		if(!IsActivityFinishUtils.isActivityFinish(context)){
		if(isFinish)
		super.dismiss();
		int size=MessageDialog.map_dialog.get(context.toString())!=null?MessageDialog.map_dialog.get(context.toString()):0;
		if(size>0){
			MessageDialog.map_dialog.put(context.toString(), size-1);
		}

		Animation a = AnimationUtils.loadAnimation(context, R.anim.dialog_out);
		layout_dailog.startAnimation(a);
		a.setAnimationListener(new AnimationListener() {

			@Override
			public void onAnimationStart(Animation anim) {
			}

			@Override
			public void onAnimationRepeat(Animation anim) {
			}

			@Override
			public void onAnimationEnd(Animation anim) {
				isFinish = true;
				dismiss();
			}
		});
		}

	}

	/**
	 * 设置单按钮没收
	 */
	public void setSingle(String text) {
		layout_double.setVisibility(View.GONE);
		btn_single.setVisibility(View.VISIBLE);
		btn_single.setText(text);
	}

	@Override
	public void setCancelable(boolean flag) {
		cancelable = flag;
		super.setCancelable(flag);
	}

	public void setTitle(String text) {
		if(text==null||text.equals("")){
			tv_title.setVisibility(View.GONE);
		}
		else{
			tv_title.setVisibility(View.VISIBLE);
			tv_title.setText(text);
		}
		
	}

	public void setContent(String text) {
		if (text == null || text.equals("")) {
			tv_content.setVisibility(View.GONE);
		} else {
			tv_content.setVisibility(View.VISIBLE);
			tv_content.setText(text);
		}

	}

	public void setContent(Spanned text) {
		if (text == null || text.equals("")) {
			tv_content.setVisibility(View.GONE);
		} else {
			tv_content.setVisibility(View.VISIBLE);
			tv_content.setText(text);
		}

	}
	public void setContent2(String text) {
		if (text == null || text.equals("")) {
			tv_content2.setVisibility(View.GONE);
		} else {
			tv_content2.setVisibility(View.VISIBLE);
			tv_content2.setText(text);
		}

	}
	public void setTime(String text) {
		if (text == null || text.equals("")) {
			tv_time.setVisibility(View.GONE);
		} else {
			tv_time.setVisibility(View.VISIBLE);
			tv_time.setText(text);
		}

	}
	public void setCount(int order_type,String text) {
		if(text==null)return ;
		String type="";
		switch(order_type){
		case Value.ORDER_TYPE_PC:
			type=context.getString(R.string.pc)+"/"+String.format(context.getString(R.string.num), text);
			break;
		case Value.ORDER_TYPE_BC:
			type=context.getString(R.string.bc)+"/"+String.format(context.getString(R.string.num_car), text);
			break;
		case Value.ORDER_TYPE_KJ:
			type=context.getString(R.string.kj);
			break;
		case Value.ORDER_TYPE_SN:
			type=context.getString(R.string.sn);
			break;
		}
		tv_count.setVisibility(View.VISIBLE);
		tv_count.setText(type);

	}
	public void setStart(String text) {
		if (text == null || text.equals("")) {
			tv_start.setVisibility(View.GONE);
		} else {
			tv_start.setVisibility(View.VISIBLE);
			tv_start.setText(String.format(context.getString(R.string.msg_change_start), text));
		}

	}
	public void setEnd(String text) {
		if (text == null || text.equals("")) {
			tv_end.setVisibility(View.GONE);
		} else {
			tv_end.setVisibility(View.VISIBLE);
			tv_end.setText(String.format(context.getString(R.string.msg_change_end), text));
		}

	}

	public void setLeftButtonText(String text) {
		btn_cencel.setText(text);
	}

	public void setRightButtonText(String text) {
		btn_confirm.setText(text);
	}

	public void setOnClickLeftListener(onClickChangeLeftListener honClickLeftListener) {
		monClickLeftListener = honClickLeftListener;
	}

	public void setOnClickRightListener(
			onClickChangeRightListener honClickRightListener) {
		monClickRightListener = honClickRightListener;
	}

	public void setOnClickSingleListener(
			onClickChangeSingleListener hOnClickSingleListener) {
		mOnClickSingleListener = hOnClickSingleListener;
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_cencel:
			if (monClickLeftListener != null)
				monClickLeftListener.onClickLeft();
			dismiss();
			break;
		case R.id.btn_confirm:
			if (monClickRightListener != null)
				monClickRightListener.onClickRight();
			dismiss();
			break;
		case R.id.btn_single:
			if (mOnClickSingleListener != null)
				mOnClickSingleListener.onClickSingle();
			dismiss();
			break;
		}

	}
}